Вариант 4, 11 июня 2006. Ripped by Kissa

1. В стеке записано 125 символов (по 2 в машинном слове). Выписать фрагмент программы 
на асмах, в котором в регистр ax записывается количество больших латинских букв 
('A'..'Z') в тексте. Можно менять любой регистр, кроме sp.

2. Дать определение сегментной организации памяти. Какой недостаток имеет СОП?

3. Написать определения для УМ-3:
-машинное слово
-адрес ячейки
-регистр команд

4. MOV dh,50
SUB dh,156
dh= cf= of= sf=

5. Привести не более 8 команд на асме, записывающих в слово с абсолютным адресом 
4В564h остаток от деления содержимого этого слова на 12.

6. Описать близкую процедурус именем bitse, которая получает в качестве параметра 
значение переменной A и дальний адрес переменной B. (все WORDы) Процедура присваивает 
параметру B значение 1, если битовое прецтавление параметра A начинается и 
заканчивается битом 1. Иначе B:=2. Процедура ДОЛЖНА выполнять ССС. 
Привести пример вызова процедуры.

7. Привести макроопределение с заголовком mac4 MACRO b
Если параметр b непустой и является именем переменной-слова, то макрос должен записать 
её в ax, bx, cx, dx. Иначе макрорасширение обязано быть пустым.

8. Вычеркнуть ошибочные операторы:
xchg bx,[bx]; neg byte ptr [si][di]; jmp cx; test ax,6[di]; add dx,[sp]; mov [bx],-1

9. Пусть в начале кодового сегмента стоит директива
ASSUME cs:code, ds:d1, es:e1, ss:s1
Пусть переменная d описана в сегменте d1, e - в e1, s - в s1. (все - слова)
Для каждой из приведённых команд записать, какой префикс сегмента вставит в машинный 
код компилятор для этой команды (написать НЕТ, если не вставит):
MOV bx,e[bp]
MOV bx,s[bx]
MOV bx,d[bp][di]
MOV bx,d[si]
MOV bx,[bp][si]

1, 2, 3, 6, 9 тоже самое, что во втором